<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
	var __banger_pmp_deals=[{"SlotName":"/1254144/plantuml_com-box-2","Deals":[{"DealId":17,"Floor":160},{"DealId":18,"Floor":25},{"DealId":19,"Floor":100}]},{"SlotName":"/1254144/plantuml_com-medrectangle-2","Deals":[{"DealId":17,"Floor":160},{"DealId":18,"Floor":25},{"DealId":19,"Floor":100}]},{"SlotName":"/1254144/plantuml_com-large-billboard-2","Deals":[{"DealId":17,"Floor":160},{"DealId":18,"Floor":25},{"DealId":19,"Floor":100},{"DealId":20,"Floor":300}]}];
</script>
<script type='text/javascript'>_ebcids=[138231308856,138231308940,138231308949,138231387842,138231421744,138231421759,138231421774,138231421783,138231421789,138231421792,138242067587,138242067590,138242067602,138242067605,138242067608,138242067614,138242229406,138242229415,138242229421,138242229430];</script>
<script data-ezscrex="false" data-cfasync="false" data-pagespeed-no-defer type='text/javascript'>ezobv = 40;</script><script data-ezscrex="false" data-cfasync="false" data-pagespeed-no-defer type='text/javascript'>
function ez_isclean( data ) {
    if (typeof data === 'undefined') { data = document.URL; }
    var re = /(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))(@|%2540|%40)((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/;
    var isClean = !re.test(data);
    return isClean;
}

var ez_queue = new Array();
function sort_queue(a, b)
{
  if( a.priority < b.priority ) return -1;
  else if( a.priority == b.priority ) return 0;
  else return 1;
}
function execute_ez_queue()
{
  ez_queue.sort( sort_queue );

  for( var i in ez_queue )
  {
        if(typeof ez_queue[i].method != "undefined")
        {
            try{
                ez_queue[i].method.call( null );
            }
            catch (err) {

            }
        }
  }
}

window.ez_ad_units = new Array();
window.ezslots = new Array();
window.ezsrqt = {};
function ez_write_tag(d) {
    if(ez_isclean() && d instanceof Array) {
        if(typeof ezstandalone !== 'undefined' && typeof ezstandalone.selectedPlaceholders !== 'undefined' && ezstandalone.selectedPlaceholders[d[3]] === true) {
            return "1+1";
        }
        ez_ad_units[ez_ad_units.length] = d;
        var dve = "";
        if(typeof d[5] != 'undefined' && d[5] > 0){dve = '_'+d[5];}
        var ezcmd = "googletag.cmd.push(function() {var divid = 'div-gpt-ad-"+d[1]+"-"+d[4]+""+dve+"';if(typeof ezlrarn == 'function'){ezlrarn(divid);}googletag.display(divid);var to = 0;if("+d[2]+".getTargeting('ga')[0] == '0'){to = 500;console.log('"+d[2]+" - no google');}if(window.ezDisableInitialLoad==true){setTimeout(function(){googletag.pubads().refresh(["+d[2]+"])},to);}});";
        return ezcmd;
    }

    return "1+1";
}
function in_array(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle) return true;
    }
    return false;
}
</script><script data-ezscrex="false" data-cfasync="false" data-pagespeed-no-defer type='text/javascript'>var ezrpos = new Array();var ez_current_interval;var ez_current_load = 0;</script><script data-cfasync="false" type="text/javascript" data-pagespeed-no-defer src="//go.ezodn.com/porpoiseant/dall361.js?cb=188-0" async></script><script data-ezscrex="false" data-cfasync="false" type="text/javascript" data-pagespeed-no-defer>
var epbjs=epbjs||{};function epbjsRequestAdUnits(e){epbjs.que.push(function(){for(var s=0;s<e.length;s++)epbjs.ezAdUnits.push(e[s]);epbjs.addAdUnits(e),epbjs.requestBids({bidsBackHandler:function(e){"function"==typeof window.ezosethbbids?window.ezosethbbids(e):window.ezosethbbidsInterval=setInterval(function(e){"function"==typeof ezosethbbids&&ezosethbbids(e)},130,e)}})})}function epbjsRefreshSlot(e){epbjs.que.push(function(){epbjs.requestBids({adUnitCodes:[e.getSlotElementId()],bidsBackHandler:function(e){epbjs.fastLoadAuctionEnd=!0,window.ezosethbbids(e)}})})}epbjs.bidderTimeout=2000,epbjs.useAdj=true,epbjs.ezAdUnits=epbjs.ezAdUnits||[],epbjs.que=epbjs.que||[],epbjs.ezdss=epbjs.ezdss||[],epbjs.ezas=epbjs.ezas||[],epbjs.ezobid=epbjs.ezobid||[],epbjs.SS={"criteo":10050,"oftmedia":10081},epbjs.bidders=['sovrn','openx','pulsepoint','defymedia','aol','conversant','districtm','admedia','emx_digital','sonobi','criteo','ix','cox','audienceNetwork','pubmatic','rubicon','gumgum','oftmedia','lockerdome','triplelift','emx_digital','justpremium','teads','onemobile','yieldlab','unruly'],epbjs.que.push(function(){epbjs.aliasBidder('appnexus', 'oftmedia');}),epbjs.que.push(function(){epbjs.setConfig({priceGranularity:{buckets:[{precision:2,min:0,max:5,increment:.01},{precision:2,min:5,max:50,increment:.1},{precision:2,min:50,max:120,increment:5}]},userSync:{filterSettings:{iframe:{bidders:"*",filter:"include"}}},consentManagement:{cmpApi:'iab',timeout:8000,allowAuctionWithoutConsent:true}}),epbjs.bidderSettings={oftmedia: { bidCpmAdjustment: function(bidCpm) { var adj1 = bidCpm * 0.900000; var adj2 = adj1 * 1.100000; return adj2; }},criteo: { bidCpmAdjustment: function(bidCpm) { var adj1 = bidCpm * 1.000000; var adj2 = adj1 * 1.100000; return adj2; }}, standard:{adserverTargeting:[{key:"epb",val:function(e){return e.bidderCode}},{key:"epa",val:function(e){return e.adId}},{key:"epp",val:function(e){return e.pbCg}},{key:"epf",val:function(e){return e.mediaType}},{key:"eps",val:function(e){return"ehb"==e.bidder?0:void 0!==epbjs.SS[e.bidder.toLowerCase()]?epbjs.SS[e.bidder.toLowerCase()]:(console.error("epbjs: NO MATCH"),0)}}]}},epbjs.onEvent("bidWon",function(e){epbjs.ezas[e.adUnitCode]=e.size,"ehb"==e.bidder?epbjs.ezdss[e.adUnitCode]=e.ss:void 0!==epbjs.SS[e.bidder.toLowerCase()]?(epbjs.ezdss[e.adUnitCode]=epbjs.SS[e.bidder.toLowerCase()],1==epbjs.useAdj&&epbjs.bidders.indexOf(e.bidder)>-1&&(epbjs.ezobid[e.adUnitCode]=e.cpm/1.100000)):console.error("epbjs: NO MATCH")})});epbjsRequestAdUnits([{code: 'div-gpt-ad-plantuml_com-box-2-0', mediaTypes: {banner: { sizes:[[728,90]] }, video: {context:'outstream',playerSize:[[728, 90]]}}, bids: [{bidder: 'criteo', params: { zoneId: '1365392' }},{bidder: 'oftmedia', params:{ placementId: '11660801' }}] },{code: 'div-gpt-ad-plantuml_com-box-2-0', mediaTypes: {banner: { sizes:[[728,90]] }, video: {context:'outstream',playerSize:[[728, 90]]}}, bids: [{bidder: 'criteo', params: { zoneId: '1365392' }},{bidder: 'oftmedia', params:{ placementId: '11660801' }}] },{code: 'div-gpt-ad-plantuml_com-medrectangle-2-0', mediaTypes: {banner: { sizes:[[728,90]] }, video: {context:'outstream',playerSize:[[728, 90]]}}, bids: [{bidder: 'criteo', params: { zoneId: '1365436' }},{bidder: 'oftmedia', params:{ placementId: '11660801' }}] },{code: 'div-gpt-ad-plantuml_com-medrectangle-2-0', mediaTypes: {banner: { sizes:[[728,90]] }, video: {context:'outstream',playerSize:[[728, 90]]}}, bids: [{bidder: 'criteo', params: { zoneId: '1365436' }},{bidder: 'oftmedia', params:{ placementId: '11660801' }}] },{code: 'div-gpt-ad-plantuml_com-large-billboard-2-0', mediaTypes: {banner: { sizes:[[300,1050],[300,600]] }, video: {context:'outstream',playerSize:[[300, 1050]]}}, bids: [{bidder: 'criteo', params: { zoneId: '1365498' }},{bidder: 'oftmedia', params:{ placementId: '14490049' }}] },{code: 'div-gpt-ad-plantuml_com-large-billboard-2-0', mediaTypes: {banner: { sizes:[[300,1050],[300,600]] }, video: {context:'outstream',playerSize:[[300, 1050]]}}, bids: [{bidder: 'criteo', params: { zoneId: '1365498' }},{bidder: 'oftmedia', params:{ placementId: '14490049' }}] }]);</script><script type='text/javascript' data-ezscrex="false">var ezorbf = []; </script><script data-ezscrex="false" data-cfasync="false" data-pagespeed-no-defer type='text/javascript'>window.isEZABL=false;window.ezmadspc=300;window.ezoViewCheck = false;</script><script data-ezscrex="false" data-cfasync="false" data-pagespeed-no-defer type='text/javascript'>window.ezDisableInitialLoad=false;</script><script data-ezscrex="false" data-cfasync="false" data-pagespeed-no-defer type='text/javascript'>
window.googletag = window.googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') +
'//securepubads.g.doubleclick.net/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();
</script>
<script data-ezscrex="false" data-cfasync="false" data-pagespeed-no-defer type='text/javascript'>
googletag.cmd.push(function() {googletag.destroySlots();if(typeof window.isEZABL == 'undefined' || window.isEZABL != true) {ezslot_0 = googletag.defineSlot('/1254144/plantuml_com-box-2',[728,90],'div-gpt-ad-plantuml_com-box-2-0').addService(googletag.pubads()).setTargeting('iid11','1041612').setTargeting('t','134').setTargeting('d','173770').setTargeting('t1','134').setTargeting('pvc','16').setTargeting('ap','1165').setTargeting('sap','1165').setTargeting('a','|124|').setTargeting('as','revenue').setTargeting('plat','1').setTargeting('bra','mod54').setTargeting('ic','1').setTargeting('at','mbf').setTargeting('adr','399').setTargeting('ezosn','0').setTargeting('reft','tf').setTargeting('refs','30').setTargeting('ga','2497208').setTargeting('gala','').setTargeting('rid','99998').setTargeting('pt','1').setTargeting('al','1001').setTargeting('compid','0').setTargeting('tap','plantuml_com-box-2-1041612').setTargeting('eb_br','3530fcb6bcc13dc3c1712eaef7d92700').setTargeting('eba','1').setTargeting('asau','2835240966').setTargeting('bv','0').setTargeting('bvm','1').setTargeting('bvr','6').setTargeting('acptad','1').setCollapseEmptyDiv(false).setTargeting('br1','160').setTargeting('br2','50').setTargeting('ezoic','1').setTargeting('nmau','0').setTargeting('stl','117').setTargeting('deal1',[20,21,22,23,24,25,26,27,28,29,30]);ezslot_0.set('adsense_background_color','FFFFFF').set('adsense_border_color','FFFFFF').set('adsense_channel_ids','9644339319').set('adsense_link_color','FF0000').set('adsense_text_color','000000').set('adsense_url_color','FF0000');ezrpos[0]="0";ezslot_1 = googletag.defineSlot('/1254144/plantuml_com-medrectangle-2',[728,90],'div-gpt-ad-plantuml_com-medrectangle-2-0').addService(googletag.pubads()).setTargeting('iid11','1055012').setTargeting('t','134').setTargeting('d','173770').setTargeting('t1','134').setTargeting('pvc','16').setTargeting('ap','1100').setTargeting('sap','1100').setTargeting('a','|3|').setTargeting('as','revenue').setTargeting('plat','1').setTargeting('bra','mod54').setTargeting('ic','1').setTargeting('at','mbf').setTargeting('adr','399').setTargeting('ezosn','1').setTargeting('reft','tf').setTargeting('refs','120').setTargeting('ga','2497208').setTargeting('gala','').setTargeting('rid','99998').setTargeting('pt','5').setTargeting('al','1005').setTargeting('compid','0').setTargeting('tap','plantuml_com-medrectangle-2-1055012').setTargeting('eb_br','3530fcb6bcc13dc3c1712eaef7d92700').setTargeting('eba','1').setTargeting('asau','2835240966').setTargeting('bv','0').setTargeting('bvm','3').setTargeting('bvr','3').setCollapseEmptyDiv(false).setTargeting('br1','160').setTargeting('br2','40').setTargeting('ezoic','1').setTargeting('nmau','0').setTargeting('stl','38').setTargeting('deal1',[20,21,22,23,24,25,26,27,28,29,30]);ezslot_1.set('adsense_background_color','FFFFFF').set('adsense_border_color','FFFFFF').set('adsense_channel_ids','9644339319').set('adsense_link_color','0000FF').set('adsense_text_color','000000').set('adsense_url_color','828282');ezrpos[1]="1";ezslot_2 = googletag.defineSlot('/1254144/plantuml_com-large-billboard-2',[300,1050],'div-gpt-ad-plantuml_com-large-billboard-2-0').addService(googletag.pubads()).setTargeting('iid11','1017612').setTargeting('t','134').setTargeting('d','173770').setTargeting('t1','134').setTargeting('pvc','16').setTargeting('ap','1163').setTargeting('sap','1163').setTargeting('a','|252|').setTargeting('as','revenue').setTargeting('plat','1').setTargeting('bra','mod54').setTargeting('ic','1').setTargeting('at','mbf').setTargeting('adr','399').setTargeting('ezosn','2').setTargeting('reft','n').setTargeting('refs','30').setTargeting('ga','2497208').setTargeting('gala','').setTargeting('rid','99998').setTargeting('pt','0').setTargeting('al','1034').setTargeting('compid','0').setTargeting('tap','plantuml_com-large-billboard-2-1017612').setTargeting('eb_br','9e0a1ce5b2455cb9b48d5df4c6bf4053').setTargeting('eba','1').setTargeting('asau','2835240966').setTargeting('bv','14').setTargeting('bvm','0').setTargeting('bvr','4').setCollapseEmptyDiv(false).setTargeting('br1','350').setTargeting('br2','180').setTargeting('ezoic','1').setTargeting('nmau','0').setTargeting('stl','28').setTargeting('deal1',[21,22,23,24,25,26,27,28,29,30]);ezslot_2.set('adsense_background_color','FFFFFF').set('adsense_border_color','FFFFFF').set('adsense_channel_ids','9644339319').set('adsense_link_color','FF6600').set('adsense_text_color','000000').set('adsense_url_color','FF6600');ezrpos[2]="2";}else{window.ezHideLocations=[];ezslot_0 = googletag.defineSlot('/1254144/plantuml_com-box-2',[728,90],'div-gpt-ad-plantuml_com-box-2-0').addService(googletag.pubads()).setTargeting('iid11','1041612').setTargeting('t','134').setTargeting('d','173770').setTargeting('t1','134').setTargeting('pvc','16').setTargeting('ap','1165').setTargeting('sap','1165').setTargeting('a','|124|').setTargeting('as','revenue').setTargeting('plat','1').setTargeting('bra','mod54').setTargeting('ic','1').setTargeting('at','mbf').setTargeting('adr','399').setTargeting('ezosn','0').setTargeting('reft','tf').setTargeting('refs','30').setTargeting('ga','2497208').setTargeting('gala','').setTargeting('rid','99998').setTargeting('pt','1').setTargeting('al','1001').setTargeting('compid','0').setTargeting('tap','plantuml_com-box-2-1041612').setTargeting('eb_br','3530fcb6bcc13dc3c1712eaef7d92700').setTargeting('eba','1').setTargeting('asau','2835240966').setTargeting('bv','0').setTargeting('bvm','1').setTargeting('bvr','6').setTargeting('acptad','1').setCollapseEmptyDiv(false).setTargeting('br1','160').setTargeting('br2','50').setTargeting('ezoic','1').setTargeting('nmau','0').setTargeting('stl','117').setTargeting('deal1',[20,21,22,23,24,25,26,27,28,29,30]);ezslot_0.set('adsense_background_color','FFFFFF').set('adsense_border_color','FFFFFF').set('adsense_channel_ids','9644339319').set('adsense_link_color','FF0000').set('adsense_text_color','000000').set('adsense_url_color','FF0000');ezrpos[0]="0";window.ezHideLocations.push('div-gpt-ad-plantuml_com-medrectangle-2-0');window.ezHideLocations.push('div-gpt-ad-plantuml_com-large-billboard-2-0');}googletag.pubads().addEventListener('slotRenderEnded', function(event) { __ez.queue.addFunc("ezbanger", "ezbanger", event, false, ['banger.js'], true, true, false, true); });googletag.pubads().addEventListener('impressionViewable', function(event) { __ez.queue.addFunc("ezvb", "ezvb", event, false, ['banger.js'], true, true, false, true); });googletag.pubads().addEventListener('slotResponseReceived', function(event) { __ez.queue.addFunc("ezsr", "ezsr", event, false, ['banger.js'], true, true, false, true); });googletag.pubads().addEventListener('slotRequested', function(e) { window.ezsrqt[e.slot.getSlotElementId()] = Date.now();});googletag.enableServices();});window.ezoll = false;window.ezoadxnc = '1254144';window.ezorefgsl = function(slot) {slot.setTargeting('reqt', Date.now());if(typeof slot.DFPSlot != 'undefined') {googletag.pubads().refresh([slot.DFPSlot]);} else {googletag.pubads().refresh([slot]);}};var ezoibfh = Array();ezoibfh[0] = 'zero';ezoibfh[1000000] = 'off';ezoibfh[260] = '57914c3716312cb7e954090f0717ea25';
ezoibfh[180] = '9ae587f95e95c876b7b76fd4c72a3838';
ezoibfh[120] = '58ef7bddb438af5e257c4377f32c243a';
ezoibfh[90] = 'b355e9227b551c119a30a68852723b62';
ezoibfh[80] = 'dfa60cee6e1053fc0c9e607c8047bd28';
ezoibfh[50] = '3ba982fc4238dd4197b1d51b345478dc';
ezoibfh[30] = '54d0fa6d5f6aabe7623cb24faa42a441';
ezoibfh[160] = '3530fcb6bcc13dc3c1712eaef7d92700';
ezoibfh[140] = 'af063c244089b52ec5a0423a258f1f8e';
ezoibfh[100] = 'a495ce7dbb4cefcd3e0a722048894f41';
ezoibfh[10] = '291d27313eb66c50243129b23df8a579';
ezoibfh[350] = '9e0a1ce5b2455cb9b48d5df4c6bf4053';
ezoibfh[280] = 'c16fac08e79a971524b1c6834f5caad3';
ezoibfh[240] = '8de2c8ca79e8623e3cb37120a35ebaa2';
ezoibfh[220] = '43aa1607a0c08c74b14a9039e7b909b4';
ezoibfh[200] = '86802a923a1f32517e4c5d3b6d550271';
ezoibfh[70] = '527e52c10635ac8136a4c84094ee49a8';
ezoibfh[40] = 'ee685f77592ce296910ee91457d66ba3';
ezoibfh[300] = '90c3c48d0172916d27c102ea4aa9d49c';
ezoibfh[60] = 'c352ba581bd3ffd8cea608cf2d55f519';
ezoibfh[20] = '7432360301409ae695ba255f16fbcf06';
var ezaxmns = {};var ezaucmns = {};ezaxmns["div-gpt-ad-plantuml_com-box-2-0"] = 0;ezaucmns["div-gpt-ad-plantuml_com-box-2-0"] = 0;ezaxmns["div-gpt-ad-plantuml_com-medrectangle-2-0"] = 0;ezaucmns["div-gpt-ad-plantuml_com-medrectangle-2-0"] = 0;ezaxmns["div-gpt-ad-plantuml_com-large-billboard-2-0"] = 0;ezaucmns["div-gpt-ad-plantuml_com-large-billboard-2-0"] = 0;if(typeof window.isEZABL == 'undefined' || window.isEZABL != true) {ezslots.push("ezslot_0");ezslots.push("ezslot_1");ezslots.push("ezslot_2");}else{ezslots.push("ezslot_0");}</script>
<script type="text/javascript">!function(e){var o;try{o=window[e];var t="__storage_test__";return o.setItem(t,t),o.removeItem(t),!0}catch(e){return e instanceof DOMException&&(22===e.code||1014===e.code||"QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&o&&0!==o.length}}("localStorage")||localStorage.removeItem("google_ama_config");</script>
<script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>var __ez=__ez||{};__ez.stms=Date.now();__ez.evt={};__ez.script={};__ez.ck={};__ez.template={};__ez.template.isOrig=false;__ez.evt.add=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n()},__ez.evt.remove=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent("on"+t,n):delete e["on"+t]};__ez.ck.get=function(cname,did){if(did!==null)cname=cname+"_"+did;var name=cname+"=";var decodedCookie=decodeURIComponent(document.cookie);var ca=decodedCookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)===' '){c=c.substring(1)}
if(c.indexOf(name)===0){return c.substring(name.length,c.length)}}
return ""};__ez.ck.setByCat=function(cookie,categoryId){if(location.protocol==='https:'){cookie=cookie+"; Secure; SameSite=Lax;";}
if(cookie.indexOf('path=')===-1){cookie+='; path=/';}
if(typeof cmpIsOn==="undefined"){document.cookie=cookie;return;}
if(typeof categoryId==="undefined"||categoryId===null){return;}
var cmpCookie=__ez.ck.get("ezCMPCookieConsent",null);cmpCookie=cmpCookie.substring(1,cmpCookie.length);if(cmpCookie.indexOf(categoryId+"=1")!==-1){document.cookie=cookie;}else if(cmpCookie===""){if(typeof cmpCookies!=="undefined"){if(typeof cmpCookies[categoryId]==="undefined"){cmpCookies[categoryId]=[];}
cmpCookies[categoryId].push(cookie);}}};__ez.queue=(function(){var count=0,incr=0,items=[],timeDelayFired=false,hpItems=[],lpItems=[],allowLoad=true;var obj={func:function(name,funcName,parameters,isBlock,blockedBy,deleteWhenComplete,proceedIfError){var self=this;this.name=name;this.funcName=funcName;this.parameters=parameters===null?null:(parameters instanceof Array)?parameters:[parameters];this.isBlock=isBlock;this.blockedBy=blockedBy;this.deleteWhenComplete=deleteWhenComplete;this.isError=false;this.isComplete=false;this.isInitialized=false;this.proceedIfError=proceedIfError;this.isTimeDelay=false;this.process=function(){log("... func = "+name);self.isInitialized=true;self.isComplete=true;log("... func.apply: "+name);var funcs=self.funcName.split('.');var func=null;if(funcs.length>3){}else if(funcs.length===3){func=window[funcs[0]][funcs[1]][funcs[2]];}else if(funcs.length===2){func=window[funcs[0]][funcs[1]];}else{func=window[self.funcName];}
if(typeof func!=='undefined'&&func!==null){func.apply(null,this.parameters);}
if(self.deleteWhenComplete===true)delete items[name];if(self.isBlock===true){log("----- F'D: "+self.name);processAll();}}},file:function(name,path,isBlock,blockedBy,async,defer,proceedIfError){var self=this;this.name=name;this.path=path;this.async=async;this.defer=defer;this.isBlock=isBlock;this.blockedBy=blockedBy;this.isInitialized=false;this.isError=false;this.isComplete=false;this.proceedIfError=proceedIfError;this.isTimeDelay=false;this.process=function(){self.isInitialized=true;log("... file = "+name);var scr=document.createElement('script');scr.src=path;if(async===true)scr.async=true;else if(defer===true)scr.defer=true;scr.onerror=function(){log("----- ERR'D: "+self.name);self.isError=true;if(self.isBlock===true){processAll();}};scr.onreadystatechange=scr.onload=function(){var state=scr.readyState;log("----- F'D: "+self.name);if((!state||/loaded|complete/.test(state))){self.isComplete=true;if(self.isBlock===true){processAll();}}};document.getElementsByTagName('head')[0].appendChild(scr);}}};function init(){window.addEventListener("load",function(){setTimeout(function(){timeDelayFired=true;log('TDELAY -----');processAll();},5000);},false);}
function addFile(name,path,isBlock,blockedBy,async,defer,proceedIfError,priority){var item=new obj.file(name,path,isBlock,blockedBy,async,defer,proceedIfError);if(priority===true){hpItems[name]=item}else{lpItems[name]=item}
items[name]=item;checkIfBlocked(item);}
function setallowLoad(settobool){allowLoad=settobool}
function addFunc(name,func,parameters,isBlock,blockedBy,autoInc,deleteWhenComplete,proceedIfError,priority){if(autoInc===true)name=name+"_"+incr++;var item=new obj.func(name,func,parameters,isBlock,blockedBy,deleteWhenComplete,proceedIfError);if(priority===true){hpItems[name]=item}else{lpItems[name]=item}
items[name]=item;checkIfBlocked(item);}
function addTimeDelayFile(name,path){var item=new obj.file(name,path,false,[],false,false,true);item.isTimeDelay=true;log(name+' ... '+' FILE! TDELAY');lpItems[name]=item;items[name]=item;checkIfBlocked(item);}
function addTimeDelayFunc(name,func,parameters){var item=new obj.func(name,func,parameters,false,[],true,true);item.isTimeDelay=true;log(name+' ... '+' FUNCTION! TDELAY');lpItems[name]=item;items[name]=item;checkIfBlocked(item);}
function checkIfBlocked(item){if(isBlocked(item)===true||allowLoad==false)return;item.process();}
function isBlocked(item){if(item.isTimeDelay===true&&timeDelayFired===false){log(item.name+" blocked = TIME DELAY!");return true;}
if(item.blockedBy instanceof Array){for(var i=0;i<item.blockedBy.length;i++){var block=item.blockedBy[i];if(items.hasOwnProperty(block)===false){log(item.name+" blocked = "+block);return true;}else if(item.proceedIfError===true&&items[block].isError===true){return false;}else if(items[block].isComplete===false){log(item.name+" blocked = "+block);return true;}}}
return false;}
function log(msg){var href=window.location.href;var reg=new RegExp('[?&]ezq=([^&#]*)','i');var string=reg.exec(href);var res=string?string[1]:null;if(res==="1")console.debug(msg);}
function processAll(){count++;if(count>200)return;log("let's go");processItems(hpItems);processItems(lpItems);}
function processItems(list){for(var i in list){if(list.hasOwnProperty(i)===false)continue;var item=list[i];if(item.isComplete===true||isBlocked(item)||item.isInitialized===true||item.isError===true){if(item.isError===true){log(item.name+': error')}else if(item.isComplete===true){log(item.name+': complete already')}else if(item.isInitialized===true){log(item.name+': initialized already')}}else{item.process();}}}
init();return{addFile:addFile,addDelayFile:addTimeDelayFile,addFunc:addFunc,addDelayFunc:addTimeDelayFunc,items:items,processAll:processAll,setallowLoad:setallowLoad};})();__ez.script.add=function(e){var t=document.createElement("script");t.src=e,t.async=!0,t.type="text/javascript",document.getElementsByTagName("head")[0].appendChild(t)};</script>
<script data-ezscrex="false" type="text/javascript" data-cfasync="false">var _ezaq = {"ad_cache_level":2,"ad_count_adjustment":0,"ad_lazyload_version":0,"ad_location_ids":"1,5,34","ad_transform_level":0,"adx_ad_count":3,"bidder_method":3,"bidder_version":5,"city":"Beijing","country":"CN","days_since_last_visit":-1,"display_ad_count":2,"domain_id":173770,"ds_adsize_opt_id":-1,"engaged_time_visit":0,"ezcache_level":2,"forensiq_score":-1,"form_factor_id":1,"framework_id":1,"has_bad_image":0,"has_bad_words":0,"iab_category":"","is_from_recommended_pages":false,"is_return_visitor":false,"is_sitespeed":0,"last_page_load":"","last_pageview_id":"","lt_cache_level":0,"max_ads":2,"metro_code":0,"optimization_version":4,"page_ad_positions":"1100,1163,1165","page_view_count":16,"page_view_id":"ac45eb95-7cc6-45d4-56de-f7decd729da0","position_selection_id":0,"postal_code":"","pv_event_count":0,"response_time_orig":3,"serverid":"34.213.79.44:7294","state":"BJ","sub_page_ad_positions":"1100,1163,1165","t_epoch":1590255799,"template_id":134,"time_on_site_visit":0,"url":"http://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000","user_id":0,"weather_precipitation":0,"weather_summary":"","weather_temperature":0,"word_count":48,"worst_bad_word_level":0};var _ezim_d = {"plantuml_com-box-2":{"adsense_stat_source_id":5,"adx_ad_count":3,"adx_stat_source_id":35,"full_id":"plantuml_com-box-2/2020-05-23/1041612","height":"90","position_id":1165,"sub_position_id":1165,"width":"728"},"plantuml_com-large-billboard-2":{"adsense_stat_source_id":5,"adx_ad_count":3,"adx_stat_source_id":35,"full_id":"plantuml_com-large-billboard-2/2020-05-23/1017612","height":"1050","position_id":1163,"sub_position_id":1163,"width":"300"},"plantuml_com-medrectangle-2":{"adsense_stat_source_id":5,"adx_ad_count":3,"adx_stat_source_id":35,"full_id":"plantuml_com-medrectangle-2/2020-05-23/1055012","height":"90","position_id":1100,"sub_position_id":1100,"width":"728"}};var _ezat = {"domain_id":173770,"form_factor_id":1,"framework_id":1,"pageview_date":"2020-05-23","pageview_id":"ac45eb95-7cc6-45d4-56de-f7decd729da0","template_id":134,"url":"http://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000","visit_uuid":"547de62f-43ab-40a9-693c-0dbf46b57c54"};</script><script data-ezscrex='false' data-pagespeed-no-defer data-cfasync='false' type="text/javascript">__ez.queue.addFile('banger.js', '/porpoiseant/banger.js?cb=188-0&bv=40&v=32&PageSpeed=off', true, [], true, false, false, true);</script>
<script>(function(){function a(g,h,i){var j=new Date;j.setTime(j.getTime()+1e3*(60*(60*(24*i))));var k="expires="+j.toUTCString(),l=g+"="+h+";"+k+";path=/;";"undefined"!=typeof ezdomain&&(l+="domain="+ezdomain),document.cookie=l}var b=window.addEventListener?"addEventListener":"attachEvent",c=window[b],f="attachEvent"==b?"onmessage":"message";c(f,function(g){"undefined"!=typeof g.data.ezstatus&&(__ez.bit.AddAndFire(_ezaq.page_view_id,[new __ezDotData("dg",g.data.ezstatus)]),a("ezdg",g.data.ezstatus,730))})})();</script>
<script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>__ez.dot={};var __ezDotData=function(name,val){if(typeof(name)!='string'&&name.length==2){val=name[1];name=name[0];}
this.name=name;this.val=val;};__ez.dot.b64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}};__ez.dot.dataToStr=function(pixelData){if(typeof pixelData==="undefined"){return[]}
try{for(var i in pixelData){pixelData[i].val=pixelData[i].val+'';}}catch(e){}
return pixelData};__ez.dot.getCC=function(){var countryCode="XX";if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("country")){countryCode=_ezaq.country;}
return countryCode;};__ez.dot.getDID=function(){var domainId="0";if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("domain_id")){domainId=_ezaq.domain_id.toString();}
return domainId;};__ez.dot.getEpoch=function(tEpoch){if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("t_epoch")){tEpoch=_ezaq.t_epoch;}
return tEpoch};__ez.dot.getPageviewId=function(){var pageviewId="";if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("page_view_id")){pageviewId=_ezaq.page_view_id;}
return pageviewId;};__ez.dot.getURL=function(pxURL){if((typeof ezJsu!=="undefined"&&ezJsu==true)||(typeof _ez_sa!=="undefined"&&_ez_sa==true)||(typeof isAmp!=='undefined'&&isAmp===true)||(typeof ezWp!=='undefined'&&ezWp===true)){pxURL="//g.ezoic.net"+pxURL;}
return pxURL;};__ez.dot.isValid=function(pixelData){for(var i=0;i<pixelData.length;i++){if(pixelData[i]instanceof __ezDotData===false){console.error("Invalid data. ",pixelData[i]);return false}}
return true};__ez.dot.isDefined=function(){for(var i=0;i<arguments.length;i++){if(typeof arguments[i]==='undefined'||arguments[i]===null){console.error("Argument not defined. ",arguments);return false}}
return true};__ez.dot.isAnyDefined=function(){var result=false;for(var i=0;i<arguments.length;i++){if(typeof arguments[i]!=='undefined'&&arguments[i]!==null){result=true}}
if(result==false){console.error("isAnyDefined Arguments not defined. ",arguments);}
return result};__ez.dot.getSlotIID=function(slot){var iid="0";try{var map=__ez.dot.getTargetingMap(slot),dvid=__ez.dot.getElementId(slot);if(dvid.indexOf("div-gpt-ad")===-1){return iid;}
if(typeof map!=="undefined"){for(var key in map){if(key.indexOf('iid')!==-1&&typeof map[key][0]!=="undefined"){iid=map[key][0];break;}}}}catch(e){}
return iid;};__ez.dot.getElementId=function(slot){if(typeof(slot.ElementId)!='undefined'){return slot.ElementId;}else{return slot.getSlotElementId()}};__ez.dot.getAdUnitPath=function(slot){if(typeof(slot.AdUnitPath)!='undefined'){return slot.AdUnitPath;}else{return slot.getAdUnitPath()}};__ez.dot.getSizes=function(slot){if(typeof(slot.Sizes)!='undefined'){return slot.Sizes;}else{return slot.getSizes();}};__ez.dot.getTargeting=function(slot,key){if(typeof(slot.Targeting)!='undefined'){return slot.Targeting[key];}else{return slot.getTargeting(key)[0];}};__ez.dot.getTargetingMap=function(slot){if(typeof(slot.Targeting)!='undefined'){return slot.Targeting;}else{return slot.getTargetingMap();}};__ez.dot.getAdUnit=function(adSlot){if(__ez.template.isOrig===true){return __ez.dot.getAdUnitPath(adSlot).split("/").pop()+"|~ez~|"+__ez.dot.getElementId(adSlot);}
return __ez.dot.getElementId(adSlot);};__ez.bit=(function(){var pixels=[],pxURL="/detroitchicago/greenoaks.gif";function AddAndFirePixel(pvId,pixelData){AddPixel(pvId,pixelData);Fire();}
function AddPixel(pvId,pixelData){if(__ez.dot.isDefined(pvId)&&__ez.dot.isValid(pixelData)){pixels.push({type:"pageview",pageview_id:pvId,domain_id:__ez.dot.getDID(),t_epoch:__ez.dot.getEpoch(0),data:__ez.dot.dataToStr(pixelData)})}}
function Fire(){if(typeof document.visibilityState!=='undefined'&&document.visibilityState==="prerender")return;if(__ez.dot.isDefined(pixels)&&pixels.length>0){(new Image()).src=__ez.dot.getURL(pxURL)+"?orig="+(__ez.template.isOrig===true?1:0)+"&ds="+btoa(JSON.stringify(pixels));}
pixels=[]}
return{Add:AddPixel,AddAndFire:AddAndFirePixel,Fire:Fire}})();</script><script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>__ez.pel=(function(){var pixels=[],pxURL="/porpoiseant/army.gif";function AddAndFirePixel(adSlot,pixelData){AddPixel(adSlot,pixelData,0,0,0,0,0);Fire();}
function GetCurrentPixels(){return pixels;}
function AddPixel(adSlot,pixelData,revenue,est_revenue,bid_floor_filled,bid_floor_prev,stat_source_id){if(!__ez.dot.isDefined(adSlot)||__ez.dot.isAnyDefined(adSlot.getSlotElementId,adSlot.ElementId)==false){return;}
var ad_position_id=parseInt(__ez.dot.getTargeting(adSlot,'ap'));var impId=__ez.dot.getSlotIID(adSlot),adUnit=__ez.dot.getAdUnit(adSlot);var compId=parseInt(__ez.dot.getTargeting(adSlot,"compid"));var lineItemId=0;var creativeId=0;var ezimData=getEzimData(adSlot);if(typeof ezimData=='object'){if(ezimData.creative_id!==undefined){creativeId=ezimData.creative_id;}
if(ezimData.line_item_id!==undefined){lineItemId=ezimData.line_item_id;}}
if(__ez.dot.isDefined(impId,adUnit)&&__ez.dot.isValid(pixelData)){pixels.push({type:"impression",impression_id:impId,domain_id:__ez.dot.getDID(),unit:adUnit,t_epoch:__ez.dot.getEpoch(0),revenue:revenue,est_revenue:est_revenue,ad_position:ad_position_id,ad_size:"",bid_floor_filled:bid_floor_filled,bid_floor_prev:bid_floor_prev,stat_source_id:stat_source_id,country_code:__ez.dot.getCC(),pageview_id:__ez.dot.getPageviewId(),comp_id:compId,line_item_id:lineItemId,creative_id:creativeId,data:__ez.dot.dataToStr(pixelData)});}}
function AddPixelById(impFullId,pixelData){var vals=impFullId.split('/');if(__ez.dot.isDefined(impFullId)&&vals.length===3&&__ez.dot.isValid(pixelData)){var adUnit=vals[0],impId=vals[2];pixels.push({type:"impression",impression_id:impId,domain_id:__ez.dot.getDID(),unit:adUnit,t_epoch:__ez.dot.getEpoch(0),pageview_id:__ez.dot.getPageviewId(),data:__ez.dot.dataToStr(pixelData)});}}
function Fire(){if(typeof document.visibilityState!=='undefined'&&document.visibilityState==="prerender")return;if(__ez.dot.isDefined(pixels)&&pixels.length>0){var pixelURL=__ez.dot.getURL(pxURL)+"?orig="+(__ez.template.isOrig===true?1:0)+"&sts="+btoa(JSON.stringify(pixels));if(typeof window.isAmp!=='undefined'&&isAmp&&typeof window._ezaq!=='undefined'&&_ezaq.hasOwnProperty("domain_id")){pixelURL+="&visit_uuid="+_ezaq['visit_uuid'];}
(new Image()).src=pixelURL;}
pixels=[];}
function getEzimData(adSlot){if(typeof _ezim_d=="undefined"){return false}
var adUnitName=__ez.dot.getAdUnitPath(adSlot).split('/').pop();if(typeof _ezim_d==='object'&&_ezim_d.hasOwnProperty(adUnitName)){return _ezim_d[adUnitName];}
for(var ezimKey in _ezim_d){if(ezimKey.split('/').pop()===adUnitName){return _ezim_d[ezimKey];}}
return false;}
return{Add:AddPixel,AddAndFire:AddAndFirePixel,AddById:AddPixelById,Fire:Fire,GetPixels:GetCurrentPixels,};})();var EzoicPixel=function(){this.pixels=[];this.pixelUrl="/ezoic/e.gif";if((typeof ezJsu!=="undefined"&&ezJsu===true)||(typeof _ez_sa!=="undefined"&&_ez_sa===true)||((typeof window.isAmp!='undefined')&&isAmp===true)||((typeof ezWp!=='undefined')&&ezWp===true)){this.pixelUrl="//g.ezoic.net"+this.pixelUrl}
this.tEpoch=0;if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("t_epoch")){this.tEpoch=_ezaq.t_epoch}};var EzoicPixelData=function(name,val){this.name=name;this.val=val;};EzoicPixel.prototype={constructor:EzoicPixel,AddAndFireImpPixel:function(adSlot,pixelData){this.AddImpPixel(adSlot,pixelData,0,0,0,0,0);this.FirePixels()},AddAndFirePVPixel:function(pvId,pixelData){this.AddPVPixel(pvId,pixelData);this.FirePixels()},AddImpPixel:function(adSlot,pixelData,revenue,est_revenue,bid_floor_filled,bid_floor_prev,stat_source_id){if(__ez.dot.isDefined(adSlot)==false||__ez.dot.isAnyDefined(adSlot.getSlotElementId,adSlot.ElementId)==false){return}
var ad_position_id=parseInt(__ez.dot.getTargeting(adSlot,'ap'));var ad_size_array=__ez.dot.getSizes(adSlot)[0];var ad_size=ad_size_array.l.toString()+"x"+ad_size_array.j.toString();var domainId="0";var countryCode="XX";if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("domain_id")){domainId=_ezaq.domain_id.toString()}
if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("country")){countryCode=_ezaq.country}
var impId=__ez.dot.getSlotIID(adSlot),adUnit=__ez.dot.getSlotElementId(adSlot);if(__ez.dot.isDefined(impId,adUnit)&&this.validateData(pixelData)){pixelData=this.convertDataToStr(pixelData);this.pixels.push({type:"impression",impression_id:impId,domain_id:domainId,unit:adUnit,t_epoch:this.tEpoch,revenue:revenue,est_revenue:est_revenue,ad_position:ad_position_id,ad_size:ad_size,bid_floor_filled:bid_floor_filled,bid_floor_prev:bid_floor_prev,stat_source_id:stat_source_id,country_code:countryCode,data:pixelData})}},AddImpPixelById:function(impFullId,pixelData){var domainId="0";if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("domain_id")){domainId=_ezaq.domain_id.toString()}
var vals=impFullId.split('/');if(__ez.dot.isDefined(impFullId)&&vals.length===3&&this.validateData(pixelData)){var adUnit=vals[0];var impId=vals[2];pixelData=this.convertDataToStr(pixelData);this.pixels.push({type:"impression",impression_id:impId,domain_id:domainId,unit:adUnit,t_epoch:this.tEpoch,data:pixelData})}},AddPVPixel:function(pvId,pixelData){var domainId="0";if(typeof _ezaq!=="undefined"&&_ezaq.hasOwnProperty("domain_id")){domainId=_ezaq.domain_id.toString()}
if(__ez.dot.isDefined(pvId)&&this.validateData(pixelData)){pixelData=this.convertDataToStr(pixelData);this.pixels.push({type:"pageview",pageview_id:pvId,domain_id:domainId,t_epoch:this.tEpoch,data:pixelData})}},FirePixels:function(){if(typeof document.visibilityState!=='undefined'&&document.visibilityState==="prerender"){return}
if(__ez.dot.isDefined(this.pixels)&&this.pixels.length>0){(new Image()).src=this.pixelUrl+"?orig="+(__ez.template.isOrig===true?1:0)+"&pixels="+encodeURIComponent(JSON.stringify(this.pixels))}
this.pixels=[]},NewData:function(name,val){return new EzoicPixelData(name,val)},convertDataToStr:function(pixelData){if(typeof pixelData==="undefined"){return[]}
try{for(var i in pixelData){pixelData[i].val=pixelData[i].val+''}}catch(e){}
return pixelData},validateData:function(pixelData){for(var i=0;i<pixelData.length;i++){if(pixelData[i]instanceof EzoicPixelData===false){console.error("Invalid pixelData. ",pixelData[i]);return false}}
return true}};</script>
<script data-ezscrex="false" data-pagespeed-no-defer data-cfasync='false' type="text/javascript">__ez.queue.addFile('rochester.js', '/detroitchicago/rochester.js?cb=188-0&v=8', false, [], true, false, true, true);</script>

<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache, must-revalidate">
<meta name="description" content="Create simply and freely UML diagrams from your browser thanks to PlantUML Web Server. Just enter a text diagram, and get the result in PNG or SVG format.">

<style media="screen" type="text/css">
a {
    text-decoration:none;
    color:#0366d6;
}
a:hover {
    text-decoration:underline;
}
#enter,
#loading {
	color: #333;
}
#diagram {
	text-align: center;
}
#footer {
	color: #666;
}
body {
	overflow-x: hidden;
	background: #edeff3;
}

textarea {
	width: 100%;
	height: 400px;
	resize: none;
}
#enter {
	font-size: .8em;
}

#footer,
#loading {
	font-size: .7em;
	padding: 2px;
	text-align: center;
}

input[type=text],
textarea {
	background-color: #fff;
	font-family: monospace;
	width: 100%;
}

code {
	font-family: 'courier new', courier, monospace;
	letter-spacing: -1pt;
}

#diagram img {
	padding: 1px;
}

.container {
	display: flex;
	width:100%;
}

.left {
  flex-shrink: 0;
}

.main {
  width:100%;
}

.right {
  flex-shrink: 0;
}

</style>

<link rel="shortcut icon" href="http://s.plantuml.com/favicon.ico">
<title>PlantUML Web Server</title>
<meta property="og:title" content="PlantUML Web Server">
<meta property="og:description" content="The PlantUML Web Server allows you to create and edit online UML diagrams using the PlantUML Language.">
<meta property="og:url" content="http://www.plantuml.com/plantuml">
<meta property="og:site_name" content="PlantUML.com">
<meta property="og:image" content="http://www.plantuml.com/plantuml/png/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000">

<meta name="twitter:image" content="http://www.plantuml.com/plantuml/sqr/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000">


<meta name="twitter:card" content="summary">

<meta name="twitter:description" content="The PlantUML Web Server allows you to create and edit online UML diagrams using the PlantUML Language.">
<meta name="twitter:title" content="PlantUML Web Server">
<meta name="twitter:site" content="@PlantUML">
<meta name="twitter:creator" content="@PlantUML">
<!-- page load timer -->
<script type='text/javascript'>
var starttime = new Date().getTime();
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-16629806-2"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-16629806-2');
</script>

<style>.ezoic-ad.large-billboard-2 { display:block !important;float:none !important;margin-bottom:2px !important;margin-left:0 !important;margin-right:0 !important;margin-top:2px !important;min-height:1070px;min-width:300px;text-align:left !important; }
.ezoic-ad.box-2 { display:block !important;float:none !important;margin-bottom:2px !important;margin-left:0px !important;margin-right:0px !important;margin-top:2px !important;min-height:110px;min-width:728px;text-align:left !important; }
.ezoic-ad.medrectangle-2 { display:inline-block;float:none;margin-bottom:2px !important;margin-left:0px !important;margin-right:0px !important;margin-top:2px !important;min-height:90px;min-width:728px; }
.ezoic-ad{display:inline-block;}
.ezoic-ad .ezoic-adl {border:1px #c0c0c047 solid;border-radius:6px;overflow:hidden;background:url("/utilcave_com/l.svg") no-repeat center center}.ezoic-ad .ezfound,.ezmob-footer .ezoic-ad .ezoic-ad,.ezoic-ad-adaptive > .ezoic-ad, .ezoic-ad-rl {background:0 0;border-radius:0;border:none}
.adtester-container-111{display:none !important}
.adtester-container-164{display:none !important}
.adtester-container-134{display:none !important}
.adtester-container-167{display:none !important}
.adtester-container-109{display:none !important}
.adtester-container-103{display:none !important}
.adtester-container-175{display:none !important}
.adtester-container-173{display:none !important}
.adtester-container-166{display:none !important}
.adtester-container-144{display:none !important}
.adtester-container-131{display:none !important}
.adtester-container-130{display:none !important}
.adtester-container-170{display:none !important}
.adtester-container-117{display:none !important}
.adtester-container-157{display:none !important}
.adtester-container-114{display:none !important}
.adtester-container-105{display:none !important}
.adtester-container-135{display:none !important}
.adtester-container-151{display:none !important}
.adtester-container-154{display:none !important}
.adtester-container-147{display:none !important}
.adtester-container-107{display:none !important}
.adtester-container-138{display:none !important}
.adtester-container-169{display:none !important}
.adtester-container-142{display:none !important}
.adtester-container-162{display:none !important}
.adtester-container-150{display:none !important}
.adtester-container-146{display:none !important}
.adtester-container-124{display:none !important}
.adtester-container-122{display:none !important}
.adtester-container-168{display:none !important}
.adtester-container-174{display:none !important}
.adtester-container-102{display:none !important}
.adtester-container-104{display:none !important}
.adtester-container-136{display:none !important}
.adtester-container-133{display:none !important}
.adtester-container-152{display:none !important}
.adtester-container-159{display:none !important}
.adtester-container-121{display:none !important}
.adtester-container-118{display:none !important}
.adtester-container-158{display:none !important}
.adtester-container-115{display:none !important}
.adtester-container-143{display:none !important}
.adtester-container-148{display:none !important}
.adtester-container-119{display:none !important}
.adtester-container-108{display:none !important}
.adtester-container-129{display:none !important}
.adtester-container-145{display:none !important}
.adtester-container-137{display:none !important}
.adtester-container-141{display:none !important}
.adtester-container-161{display:none !important}
.adtester-container-110{display:none !important}
.adtester-container-127{display:none !important}
.adtester-container-155{display:none !important}
.adtester-container-171{display:none !important}
.adtester-container-120{display:none !important}
.adtester-container-176{display:none !important}
.adtester-container-153{display:none !important}
.adtester-container-123{display:none !important}
.adtester-container-112{display:none !important}
.adtester-container-160{display:none !important}
.adtester-container-116{display:none !important}
.adtester-container-140{display:none !important}
.adtester-container-106{display:none !important}
.adtester-container-149{display:none !important}
.adtester-container-128{display:none !important}
.adtester-container-156{display:none !important}
.adtester-container-172{display:none !important}
.adtester-container-132{display:none !important}
.adtester-container-139{display:none !important}

		.ezmob-footer {
			position: fixed; left: 0px; bottom: 0px; width: 100%; background: white; z-index: 100000;
		}
		.ezmob-footer-desktop {
			background-color:rgba(255, 255, 255, 0.8);
			border-top:1px solid lightgray;
			padding-top:5px;
		}
		.ezmob-footer-close {
			cursor: pointer;
			color: #b2b2b2;
			border: 1px solid #b2b2b2;
			border-radius: 20px;
			background: #fff;
			line-height: 20px;
			display: inline-block;
			font-size: 20px;
			font-family: arial,sans-serif;
			padding: 0 5px;
			position: absolute;
			top: 5px;
			right: 5px;
			height: 24px;
			width: 21px;
		}
		body { 
			padding-bottom: 100px; 
		}
		.ezmob-footer-close-mobile {
			display:none;
		}
		</style><link rel='canonical' href='http://plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000' />

<script data-ezscrex="false" data-cfasync="false" type="text/javascript">window.google_analytics_uacct = "UA-116846127-27";</script>
<script data-ezscrex="false" data-cfasync="false" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['e._setAccount', 'UA-116846127-27']);
_gaq.push(['f._setAccount', 'UA-38339005-1']);
_gaq.push(['e._setDomainName', 'plantuml.com']);
_gaq.push(['f._setDomainName', 'plantuml.com']);
_gaq.push(['e._setCustomVar',1,'template','pub_site',3]);
_gaq.push(['e._setCustomVar',2,'t','134',3]);
_gaq.push(['e._setCustomVar',3,'rid','0',2]);
_gaq.push(['e._setCustomVar',4,'bra','mod54',3]);
_gaq.push(['e._setAllowAnchor',true]);
_gaq.push(['e._setSiteSpeedSampleRate', 10]);
_gaq.push(['f._setCustomVar',1,'template','pub_site',3]);
_gaq.push(['f._setCustomVar',2,'domain','plantuml.com',3]);
_gaq.push(['f._setSiteSpeedSampleRate', 20]);
_gaq.push(['e._trackPageview']);
_gaq.push(['f._trackPageview']);


(function() {
 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script type="text/javascript">var ezouid = "1";</script><base href="http://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000"><script type='text/javascript'>
var ezoTemplate = 'pub_site';
if(typeof ezouid == 'undefined')
{
    var ezouid = 'none';
}
var ezoFormfactor = '1';
var ezo_elements_to_check = Array();
</script><!-- START EZHEAD -->
<script data-ezscrex="false" type='text/javascript'>
var soc_app_id = '0';
var did = 173770;
var ezdomain = 'plantuml.com';
var ezoicSearchable = 1;
</script>
<!--{jquery}-->
<!-- END EZHEAD -->
<script data-ezscrex='false' data-pagespeed-no-defer data-cfasync='false' type='text/javascript' style='display:none'>
__ez.queue.addFile('__ezf_ezosuigeneris', '//g.ezoic.net/ezosuigeneris.js', true, [], true, false, false, false);
var __ez_ezosuigenerisEvt = function() { if(typeof(ezosuigeneris) != 'undefined'){__ez.bit.AddAndFire(_ezaq['page_view_id'], [(new __ezDotData('universal_user_id', ezosuigeneris))]); }};
__ez.queue.addFunc('__ez_ezosuigenerisEvt', '__ez_ezosuigenerisEvt', null, false, ['__ezf_ezosuigeneris'], false, false, false, false);</script><script data-ezscrex='false' data-pagespeed-no-defer data-cfasync='false' type='text/javascript' style='display:none'>__ez.queue.addFile('__ezf_ezosuigenerisc', '//g.ezoic.net/ezosuigenerisc.js?nogen=1', true, [], true, false, false, false);</script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" type="text/javascript"></script>

<script type="text/javascript">
(function(){
	var div = document.createElement('div');
	div.id = 'dmo1';
	div.style = 'display:none';
	var s = document.createElement('script');
	var code = `var googleAdClient = "ca-pub-6396844742497208";
			  window.google_ad_client = googleAdClient;
			  /* dmo */
			  window.google_ad_slot = "dmo";
			  window.google_ad_width = 88;
			  window.google_ad_height = 31;
			  (adsbygoogle = window.adsbygoogle || []).push({
				  google_ad_client: googleAdClient,
				  enable_page_level_ads: false
			  });`;
	var ss = document.createElement('script');
	ss.src = '//pagead2.googlesyndication.com/pagead/show_ads.js';
	ss.type = 'text/javascript';
	ss.async = false;
	try {
		s.appendChild(document.createTextNode(code));
	} catch (e) {
		s.text = code;
	}
	div.appendChild(s);
	div.appendChild(ss);
	if (document.readyState == 'interactive' || document.readyState == 'complete') {
		document.body.appendChild(div);
	} else {
		document.addEventListener("DOMContentLoaded", function(event) {
			document.body.appendChild(div);
		});
	}
}());
</script>
<script data-ezscrex='false' data-pagespeed-no-defer data-cfasync='false'>
function create_ezolpl() {
    var d = new Date();
    d.setTime(d.getTime() + (365*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    __ez.ck.setByCat("ezux_lpl_173770=" + new Date().getTime() + "|ac45eb95-7cc6-45d4-56de-f7decd729da0|false; " + expires, 3);
}
function attach_ezolpl() {
    if(window.attachEvent) {
        window.attachEvent('onload', create_ezolpl);
    } else {
        if(window.onload) {
            var curronload = window.onload;
            var newonload = function(evt) {
                curronload(evt);
                create_ezolpl();
            };
            window.onload = newonload;
        } else {
            window.onload = create_ezolpl;
        }
    }
}
attach_ezolpl();
</script></head>
<body>
<script>
function doneLoading() {
    var loadtime = new Date().getTime();
    var loadduration = loadtime - starttime;
    document.getElementById('loadtime2').innerHTML = 'image loaded in '+ loadduration +' ms';
};    
</script>

<div class="container">

<div class="left">

<!-- Ezoic - SERV -->
<span id="ezoic-pub-ad-placeholder-163"></span><span style='display:block !important;float:none !important;margin-bottom:2px !important;margin-left:0 !important;margin-right:0 !important;margin-top:2px !important;min-height:1070px;min-width:300px;text-align:left !important;' class='ezoic-ad large-billboard-2 adtester-container adtester-container-163' data-ez-name='plantuml_com-large-billboard-2'><span id='div-gpt-ad-plantuml_com-large-billboard-2-0' ezaw='300' ezah='1050' style='position:relative;z-index:0;display:inline-block;min-height:1050px;min-width:300px;' class='ezoic-ad'><script data-ezscrex='false' data-cfasync='false' type='text/javascript' style='display:none;'>eval(ez_write_tag([[300,1050],'plantuml_com-large-billboard-2','ezslot_2',163,'0','0']));</script></span><span style='width:300px;display:block;height:14px;margin:auto' class='reportline'><span style='text-align:center;font-size: smaller;float:left;line-height:normal;'><a href='https://www.ezoic.com/what-is-ezoic/' target='_blank' rel='noopener noreferrer nofollow' style='cursor:pointer'/><img src='https://go.ezoic.net/utilcave_com/img/ezoic.png' style='height:12px !important; padding:2px !important; border:0px !important; cursor:pointer !important; width: 58px !important; margin:0 !important; box-sizing: content-box !important;'/></a></span><span class="ez-report-ad-button" name="?pageview_id=ac45eb95-7cc6-45d4-56de-f7decd729da0&ad_position_id=163&impression_group_id=plantuml_com-large-billboard-2/2020-05-23/1017612&ad_size=300x1050&domain_id=173770&url=http://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000" style='cursor: pointer!important; font-size:12px !important;color: #a5a5a5 ;float:right;text-decoration:none !important;font-family:arial !important;line-height:normal;'>report this ad</span></span></span>
<!-- End Ezoic - SERV -->

</div>
<div class="left">&nbsp;&nbsp;</div>

<div class="main">

<!-- Ezoic - SERH -->
<span id="ezoic-pub-ad-placeholder-164"></span>
<!-- End Ezoic - SERH -->


<script async src=http://s.plantuml.com/synchro2.min.js></script>
<script>
function compress(s, change) {
//UTF8
s = unescape(encodeURIComponent(s));
var arr = [];
for (var i = 0; i < s.length; i++) {
	arr.push(s.charCodeAt(i));
}
var compressor = new Zopfli.RawDeflate(arr);
var compressed = compressor.compress();
if (change)
dest = "http://www.plantuml.com/plantuml" + "/umla/"+encode64_(compressed);
else
dest = "http://www.plantuml.com/plantuml" + "/uml/"+encode64_(compressed);
window.location.href = dest;
}
function backto(s) {
	var i = s.lastIndexOf("/");
	if (i!=-1) s = s.substring(i+1);
	dest = "http://www.plantuml.com/plantuml" + "/uml/"+s;
	window.location.href = dest;
}
</script>

<textarea name="text" id="inflated" spellcheck="false">@startuml
Bob -&gt; Alice : hello
@enduml</textarea>

<button onclick="compress(GID('inflated').value,false)">Submit</button>
<button onclick="compress(GID('inflated').value,true)">Switch layout</button>
&nbsp;

&nbsp;

&nbsp;
<a href="http://www.plantuml.com/plantuml/png/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000">View as PNG</a>&nbsp;
<a href="http://www.plantuml.com/plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000">View as SVG</a>&nbsp;
<a href="http://www.plantuml.com/plantuml/txt/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000">View as ASCII Art</a>


<!-- hr -->

<!-- Ezoic - SERH -->
<span id="ezoic-pub-ad-placeholder-165"></span><span style='display:block !important;float:none !important;margin-bottom:2px !important;margin-left:0px !important;margin-right:0px !important;margin-top:2px !important;min-height:110px;min-width:728px;text-align:left !important;' class='ezoic-ad box-2 adtester-container adtester-container-165' data-ez-name='plantuml_com-box-2'><span id='div-gpt-ad-plantuml_com-box-2-0' ezaw='728' ezah='90' style='position:relative;z-index:0;display:inline-block;min-height:90px;min-width:728px;' class='ezoic-ad'><script data-ezscrex='false' data-cfasync='false' type='text/javascript' style='display:none;'>eval(ez_write_tag([[728,90],'plantuml_com-box-2','ezslot_0',165,'0','0']));</script></span></span>
<!-- End Ezoic - SERH -->


<p id="diagram">
    
    <img src="http://www.plantuml.com/plantuml/png/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000" style="max-width: 100%; height: auto;" alt="PlantUML diagram" onload="doneLoading()">
    
</p>


<!-- hr -->

<!-- Ezoic - SERH -->
<span id="ezoic-pub-ad-placeholder-166"></span>
<!-- End Ezoic - SERH -->


<div id="enter">
You can enter here a previously generated URL:

<table width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="100%">
<input name="url" id="url" type="text" value="http://www.plantuml.com/plantuml/png/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000" onkeyup="if (event.keyCode == 13) { backto(GID('url').value); return false; }">
</td><td>
<button onclick="backto(GID('url').value)">Submit</button>
</td></tr>
</tbody></table>

</div>

<div id="loading">(<i id="loadtime0"></i>&nbsp;/&nbsp;<i id="loadtime1"></i>&nbsp;/&nbsp;<i id="loadtime2"></i>)</div>


<div id="footer">
<a href="http://plantuml.com">PlantUML Server</a> / version 1202010
</div> 
<!-- hr -->

<!-- Ezoic - SERH -->
<span id="ezoic-pub-ad-placeholder-167"></span>
<!-- End Ezoic - SERH -->


</div>

<div class="right">&nbsp;&nbsp;</div>

<div class="right">

<!-- Ezoic - SERV0 -->
<span id="ezoic-pub-ad-placeholder-169"></span>
<!-- End Ezoic - SERV0 -->

</div>


</div>

<!-- Start of StatCounter Code for Default Guide -->
<script type="text/javascript">
var sc_project=9301480; 
var sc_invisible=1; 
var sc_security="6eff847c"; 
var scJsHost = (("https:" == document.location.protocol) ?
"https://secure." : "http://www.");
document.write("<sc"+"ript type='text/javascript' src='" +
scJsHost+
"statcounter.com/counter/counter.js'></"+"script>");
</script>
<noscript><div class="statcounter"><a title="web analytics"
href="http://statcounter.com/" target="_blank"><img
class="statcounter"
src="http://c.statcounter.com/9301480/0/6eff847c/1/"
alt="web analytics"></a></div></noscript>
<!-- End of StatCounter Code for Default Guide -->

<script type='text/javascript'>
var endtime = new Date().getTime();
var endduration = endtime - starttime;
document.getElementById('loadtime1').innerHTML = 'page loaded in '+ endduration +' ms';

document.getElementById('loadtime0').innerHTML = 'Page generated in 10 ms';
</script>





		<!-- Ezoic - Anchor Ad - bottom_floating -->
		<div class="ezmob-footer ezoic-floating-bottom ezo_ad ezmob-footer-desktop" id="ezmobfooter"><center><span id="ezoic-pub-ad-placeholder-100"></span>
		<!-- Ezoic - Anchor Ad - bottom_floating -->
		<div class="ezmob-footer ezoic-floating-bottom ezo_ad ezmob-footer-desktop" id="ezmobfooter"><center><span style='display:inline-block;float:none;margin-bottom:2px !important;margin-left:0px !important;margin-right:0px !important;margin-top:2px !important;min-height:90px;min-width:728px;' class='ezoic-ad medrectangle-2 adtester-container adtester-container-100' data-ez-name='plantuml_com-medrectangle-2'><span id='div-gpt-ad-plantuml_com-medrectangle-2-0' ezaw='728' ezah='90' style='position:relative;z-index:0;display:inline-block;min-height:90px;min-width:728px;' class='ezoic-ad ezoic-adl'><script data-ezscrex='false' data-cfasync='false' type='text/javascript' style='display:none;'>eval(ez_write_tag([[728,90],'plantuml_com-medrectangle-2','ezslot_1',100,'0','0']));</script></span></span></center><span class='ezmob-footer-close' onclick="document.getElementById('ezmobfooter').style.display='none';">x</span></div>
		<!-- End Ezoic - Anchor Ad - bottom_floating -->
		</center><span class='ezmob-footer-close' onclick="document.getElementById('ezmobfooter').style.display='none';">x</span></div>
		<!-- End Ezoic - Anchor Ad - bottom_floating -->
		<script type='text/javascript' style='display:none;' async>__ez.queue.addFile('anchorfix.js', '/ezoic/anchorfix.js?cb=188-0', false, [], true, true, true, false);</script>

		<script type="text/javascript">
		(function(f,a){function g(b,a,c){b.addEventListener?b.addEventListener(a,c):b.attachEvent("on"+a,function(){c.call(b)})}function k(b){b&&("string"==typeof b["class"]&&b["class"]&&a.getElementById("uglipop_popbox").setAttribute("class",b["class"]),b.keepLayout&&!b["class"]&&a.getElementById("uglipop_popbox").setAttribute("style","position:relative;height:300px;width:300px;background-color:white;opacity:1;"),"string"==typeof b.content&&b.content&&"html"==b.source&&(a.getElementById("uglipop_popbox").innerHTML=b.content),"string"==typeof b.content&&b.content&&"div"==b.source&&(a.getElementById("uglipop_popbox").innerHTML=a.getElementById(b.content).innerHTML));a.getElementById("uglipop_overlay_wrapper").style.display="";a.getElementById("uglipop_overlay").style.display="";a.getElementById("uglipop_content_fixed").style.display=""}function h(){a.getElementById("uglipop_overlay_wrapper").style.display="none";a.getElementById("uglipop_overlay").style.display="none";a.getElementById("uglipop_content_fixed").style.display="none"}g(a,"DOMContentLoaded",function(){var b=a.createElement("div"),e=a.createElement("div"),c=a.createElement("div"),d=a.createElement("div");e.id="uglipop_content_fixed";e.setAttribute("style","position:fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);-webkit-transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%);opacity:1;z-index:10000000;");c.id="uglipop_popbox";d.id="uglipop_overlay_wrapper";d.setAttribute("style","position:absolute;top:0;bottom:0;left:0;right:0;display:none");b.id="uglipop_overlay";b.setAttribute("style","position:fixed;top:0;bottom:0;left:0;right:0;opacity:0.3;width:100%;height:100%;background-color:black;");d.appendChild(b);e.appendChild(c);a.body.appendChild(d);a.body.appendChild(e);a.getElementById("uglipop_overlay_wrapper").style.display="none";a.getElementById("uglipop_overlay").style.display="none";a.getElementById("uglipop_content_fixed").style.display="none";d.addEventListener("click",h);g(f,"keydown",function(a){27==a.keyCode&&h()});f.uglipop=k})})(window,document);
			var ezRBA = (function() {
			  function init() {
				var reportAdsBtns = document.querySelectorAll('.ez-report-ad-button');
				for (var i = 0; i < reportAdsBtns.length; i++) {
				  reportAdsBtns[i].addEventListener('click', function(e) {
					var url = '<iframe src="https://ezoic.com/pub/reportads/reportads.html' + e.target.getAttribute('name') + '" width="400" height="500" style="border-radius: 10px; box-shadow: 2px 2px 30px 6px rgba(0,0,0,0.75); border: 1px solid black;"></iframe>'
					uglipop({
					  class: 'none',
					  source: 'html',
					  content: url,
					});
				  });
				}
				function bindEvent(element, eventName, eventHandler) {
					if (element.addEventListener) {
						element.addEventListener(eventName, eventHandler, false);
					} else if (element.attachEvent) {
						element.attachEvent('on' + eventName, eventHandler);
					}
				}
				bindEvent(window, 'message', function(e) {
					if (e.data === 'close-report-ad-modal') {
						document.getElementById('uglipop_overlay_wrapper').style.display = 'none';	
						document.getElementById('uglipop_overlay').style.display = 'none';	
						document.getElementById('uglipop_content_fixed').style.display = 'none';	
					}
				})
			  }

			  return {
				init: init
			  };
			})();
			ezRBA.init();
		</script>
<script type='text/javascript' data-cfasync='false'></script>
<script type="text/javascript" style='display:none;'>
var __ez_dims = (function() {
	var setCookie = function( name, content, expiry ) {
		return document.cookie = name+'='+content+((expiry)?';expires='+(new Date(Math.floor(new Date().getTime()+expiry*1000)).toUTCString()):'')+';path=/';
	};
	var ffid = 1;
	var oh = window.screen.height;
	var ow = window.screen.width;
	var h = ffid === 1 ? oh : (oh > ow) ? oh : ow;
	var w = ffid === 1 ? ow : (oh > ow) ? ow : oh;
	var uh = window.innerHeight || document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight;
	var uw = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
	setCookie('ezds', encodeURIComponent('ffid='+ffid+',w='+w+',h='+h), (31536e3*7));
	setCookie('ezohw', encodeURIComponent('w='+uw+',h='+uh), (31536e3*7));
})();
</script><script type='text/javascript' style='display:none;' async>
__ez.queue.addFile('edmonton.php', '/detroitchicago/edmonton.webp?a=a&cb=188-0&shcb=32', true, [], true, false, false, false);
__ez.queue.addFile('jellyfish.php', '/porpoiseant/jellyfish.webp?a=a&cb=188-0&shcb=32', false, [], true, false, false, false);
</script>

<script>var _audins_dom="plantuml_com",_audins_did=173770;__ez.queue.addDelayFunc("audins.js","__ez.script.add", "//go.ezoic.net/detroitchicago/audins.js?cb=188-0");</script><noscript><div style="display:none;"><img src="//pixel.quantserve.com/pixel/p-31iz6hfFutd16.gif?labels=Domain.plantuml_com,DomainId.173770" border="0" height="1" width="1" alt="Quantcast"/></div></noscript><noscript><img src="https://sb.scorecardresearch.com/p?c1=2&c2=20015427&cv=2.0&cj=1"/></noscript></body></html><!--[selectron:done]-->
